Error control means a method of detecting and correcting an error occurring during data transmission. Hereinafter, an error control scheme will be described in brief.
The error control scheme can be divided into an automatic repeat request (ARQ) scheme, a forward error correction (FEC) scheme, and a backward error correction (BEC) scheme.
According to the ARQ scheme, a receiver checks whether an error has occurred, and requests retransmission for a part where an error has occurred. Namely, according to the ARQ scheme, the receiver checks whether an error has occurred using acknowledgement (ACK) and time out, and a transmitter retransmits a frame where an error has occurred.
According to the FEC scheme, the transmitter transmits a text message or frame by adding redundancy information thereto, so that the receiver detects and corrects an error using the redundancy information when the error is found. Namely, according to the FEC scheme, the transmitter transmits data by adding redundancy information, which can correct an error, to the data, and the receiver corrects the error through the redundancy information.
According to the BEC scheme, the transmitter transmits a text message or frame by adding redundancy information, which can detect an error, to the text message or frame, and the receiver requests the transmitter of retransmission when the error is found.
An error detection code and an error correction code are used for the error control scheme.
The error detection code is added to data so that the receiver can identify the presence of an error occurring during data transmission. Examples of the error control scheme which uses the error detection code include parity check, check sum, and cyclic redundancy checking (CRC).
The parity check is most generally used when a small number of information bits are provided and the probability of error is low. Since the parity check can simply be performed, it is mainly used for asynchronous communication. However, the parity check has a drawback in that error detection cannot be performed in case of an even number of errors.
The check sum is a type of error detection. According to the check sum, the transmitter calculates all data transmitted to the receiver in a unit of word or bit. If the transmitter transmits the calculated result to the receiver, the receiver performs calculation in the same manner as the transmitter to detect an error.
The CRC is one of methods of detecting an error. For example, if the transmitter transmits data by adding a redundant frame check sequence (FCS) field thereto, the receiver can perform error check in the same manner as the transmitter.
The error correction code used for error control is a code representing a redundancy bit included in a data block so that the receiver can estimate what data transmitted thereto is. Examples of the error correction code include a block code and a convolution code.
The block code means a channel code that can allow the receiver to correct an error by adding redundancy information of a given length to information (signal) of a given length. Examples of the channel code include a linear code and a hamming code. Examples of a cyclic code include a Reed-Solomon code, a Bose Chaudhuri-Hocquenghem (BCH) code, and a cyclic redundancy code (CRC).
The convolutional code uses a previous signal and a current signal together when data are coded. Namely, since a convolutional coder has a memory, the previous signal can be used for error correction of the current signal.